package br.ufpe.cin.ip.biblioteca.tad;

import br.ufpe.cin.ip.biblioteca.entidades.Usuario;
import br.ufpe.cin.ip.biblioteca.iterator.IteratorUsuario;
import br.ufpe.cin.ip.biblioteca.iterator.IteratorUsuarioLista;

public class ListaUsuario {
	private Usuario usuario;
	private ListaUsuario proximo;
	
	public ListaUsuario(Usuario usuario) {
		this.usuario = usuario;
		this.proximo = null;
	}
	
	public void inserir(Usuario usuario) {
		if(this.proximo==null) {
			this.proximo = new ListaUsuario(usuario);
		} else {
			this.proximo.inserir(usuario);
		}
	}
	
	public void remover(Usuario usuario) {
		if(this.usuario!=null) {
			if(this.usuario.equals(usuario)) {
				this.usuario = this.proximo.usuario;
				this.proximo = this.proximo.proximo;
			} else {
				this.proximo.remover(usuario);
			}
		}
	}
	
	public IteratorUsuario getIterator() {
		return new IteratorUsuarioLista(this);
	}
	
	public Usuario getUsuario() {
		return this.usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

	public ListaUsuario getProximo() {
		return this.proximo;
	}

	public void setProximo(ListaUsuario proximo) {
		this.proximo = proximo;
	}
}
